package com.aatattoo.light_food_service.mapper;

import com.aatattoo.light_food_service.entity.Comment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author aatattoo
 * @Date 2021/12/13 11:56 上午
 * @msg:
 */
@Mapper
@Repository
public interface CommentMapper {
    /**
     * 添加评论
     * @param comment
     * @return
     */
    int addComment(Comment comment);

    /**
     * 更新是否有回复的状态
     * @param comment
     * @return
     */
    int updataHaveReply(Comment comment);

    /**
     * 通过id删除评论
     * @param id
     * @return
     */
    int deleteById(@Param("id") int id);

    /**
     * 获取评论信息，通过动态ID
     * @param dynamicId
     * @return
     */
    List<Comment> findByDynamicId(@Param("dynamicId")int dynamicId);

    /**
     * 统计未查看的评论数量
     * 不记录自己的评论
     * @param comment 该用户发送的动态id
     * @return
     */
    int countRemind(Comment comment);

    /**
     * 统计动态下所有评论数量
     * @param dynamicId
     * @return
     */
    int countComment(@Param("dynamicId")int dynamicId);
    /**
     * 更新已查看评论状态
     * @param commentId 该用户发送的动态id
     * @return
     */
    int updataRemind(@Param("commentId")int commentId);

    /**
     * 获取动态下所有评论id
     * @param dynamicId
     * @return
     */
    List<Integer> findByDynamicIdForId(@Param("dynamicId")int dynamicId);
    /**
     * 获取指定用户所有一级评论Id
     * @param userId
     * @return
     */
    List<Comment> findByUserId(@Param("userId")int userId);

    /**
     * 通过评论id获取指定评论
     * @param commentId
     * @return
     */
    Comment findByCommentId(@Param("commentId")int commentId);

    /**
     * 通过动态id删除评论
     * @param dynamicId
     * @return
     */
    int deleteByDynamicId(@Param("dynamicId")int dynamicId);
}
